<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 回调函数
    //  把函数当成参数去传递 
    //  在合适的时机, 回头调用下当前函数
    // 作用: 解决异步的问题
    // 异步: 定时器 / 延时器 ajax请求 axios

    // return 在异步中失效了 ? 替代return 
    function login(username, password, callback) {
      setTimeout(() => {
        // console.log(username, password);
        if (username === 'zs' && password === '123') {
          // return '登录成功'
          callback('登录成功')
        } else {
          // return '登录失败'
          callback('登录失败')
        }
      }, 100);
      // return undefined
    }
    // 函数的默认值是undefined
    login('ls', '123', (res) => {
      console.log('callback执行了', res);
    })

    setTimeout(() => {

    }, 1000);







    // function fn(n) {
    //   console.log(n);
    //   n()
    //   n()
    //   n()
    // }
    // // fn(1234)
    // // fn('str')
    // // fn(true)
    // // fn({name:'张三'})
    // // fn([1,2,3,4])
    // fn(function () {
    //   console.log(1111);
    // })
  </script>
</body>

</html>